using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Its_Going_to_Be_Badass.GameObjects
{
    class Enemy
    {
        private Vec3f m_Position;

        internal Vec3f Position
        {
            get { return m_Position; }
            set { m_Position = value; }
        }

        private Vec3f m_Velocity;

        internal Vec3f Velocity
        {
            get { return m_Velocity; }
            set { m_Velocity = value; }
        }

        private float m_fHealth;

        public float FHealth
        {
            get { return m_fHealth; }
            set { m_fHealth = value; }
        }

        private int m_nPointValue;

        public int NPointValue
        {
            get { return m_nPointValue; }
            set { m_nPointValue = value; }
        }

        private int m_nProjectile;

        public int NProjectile
        {
            get { return m_nProjectile; }
            set { m_nProjectile = value; }
        }

        private Enemy()
        {
            m_fHealth = new float();
            m_fHealth = 0.0f;
            m_nPointValue = new int();
            m_nPointValue = 0;
            m_nProjectile = new int();
            m_nProjectile = 0;
            m_Position = new Vec3f();
            m_Position.SetVec3f(0.0f, 0.0f, 0.0f);
            m_Velocity = new Vec3f();
            m_Velocity.SetVec3f(0.0f, 0.0f, 0.0f);
        }

        public Enemy(float fHealth, int nPointValue, int nProjectile, Vec3f Position, Vec3f Velocity)
        {
            m_fHealth = new float();
            m_fHealth = fHealth;

            m_nPointValue = new int();
            m_nPointValue = nPointValue;

            m_nProjectile = new int();
            m_nProjectile = nProjectile;

            m_Position = new Vec3f();
            m_Position = Position;

            m_Velocity = new Vec3f();
            m_Velocity = Velocity;
        }

        public void Update(float fElapsedTime)
        {
            m_Position.SetVec3f(
                m_Position.GetX() + m_Velocity.GetX() * fElapsedTime,
                m_Position.GetY() + m_Velocity.GetY() * fElapsedTime,
                m_Position.GetZ() + m_Velocity.GetZ() * fElapsedTime);
        }
    }
}